﻿// //   Copyright 2007-2011 Comdiv (F. Sadykov) - http://code.google.com/u/fagim.sadykov/
// //   Supported by Media Technology LTD 
// //    
// //   Licensed under the Apache License, Version 2.0 (the "License");
// //   you may not use this file except in compliance with the License.
// //   You may obtain a copy of the License at
// //    
// //        http://www.apache.org/licenses/LICENSE-2.0
// //    
// //   Unless required by applicable law or agreed to in writing, software
// //   distributed under the License is distributed on an "AS IS" BASIS,
// //   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// //   See the License for the specific language governing permissions and
// //   limitations under the License.
// //   
// //   MODIFICATIONS HAVE BEEN MADE TO THIS FILE

using System.Collections.Generic;
using System.Linq;

namespace Comdiv.QWeb.Events {
	public class ResetEventData : IQWebEventData {
		private readonly IList<string> options = new List<string>();
		public bool All { get; private set; }

		#region IQWebEventData Members

		public IQWebEventData Build(QWebContext context) {
			All = context.get("all", false);
			var rps = context.Parameters.Keys.Where(x => x.StartsWith("rp."));
			foreach (var rp in rps) {
				var key = rp.Substring(3);
				options.Add(key);
			}
			return this;
		}

		#endregion

		public bool IsSet(string data) {
			if (All) return true;
			if (options.Contains(data)) return true;
			if (options.Contains(data.Split('.')[0])) return true;
			if (null != options.FirstOrDefault(x => x.StartsWith(data + "."))) return true;
			return false;
		}
	}
}